<?php
/**
 * KindEditor PHP
 * 
 * 本PHP程序是演示程序，建议不要直接在实际项目中使用。
 * 如果您确定直接使用本程序，使用之前请仔细确认相关安全设置。
 * 
 */
require_once 'JSON.php';
require_once '../../../../lib/Imagetranscls.php';
$php_path = dirname(__FILE__) . '/';
$php_url = dirname($_SERVER['PHP_SELF']) . '/';
//新闻内容图片 保存 文件保存目录路径
//$save_path = $php_path."../../../news/attached/";
$save_path = "../../../../static/upload/images/";
//文件保存目录URL
//$save_url = $php_url. '../../../news/attached/';
$save_url = "/static/upload/images/";
//定义允许上传的文件扩展名
$ext_arr = array('gif', 'jpg', 'jpeg', 'png', 'bmp');
//最大文件大小
$max_size = 1000000;
//$save_path = realpath($save_path) . '/';
//有上传文件时
if (empty($_FILES) === false) {
    //原文件名
    $file_name = $_FILES['imgFile']['name'];
    //服务器上临时文件名
    $tmp_name = $_FILES['imgFile']['tmp_name'];
    //文件大小
    $file_size = $_FILES['imgFile']['size'];
    //检查文件名
    if (! $file_name) {
        alert("请选择文件。");
    }
    //检查目录
    if (@is_dir($save_path) === false) {
        alert("上传目录不存在。" . $save_path);
    }
    //检查目录写权限
    if (@is_writable($save_path) === false) {
        alert("上传目录没有写权限。" . $save_path);
    }
    //检查是否已上传
    if (@is_uploaded_file($tmp_name) === false) {
        alert("临时文件可能不是上传文件。");
    }
    //检查文件大小
    if ($file_size > $max_size) {
        alert("上传文件大小超过限制。");
    }
    //获得文件扩展名
    $temp_arr = explode(".", $file_name);
    $file_ext = array_pop($temp_arr);
    $file_ext = trim($file_ext);
    $file_ext = strtolower($file_ext);
    //检查扩展名
    if (in_array($file_ext, $ext_arr) === false) {
        alert("上传文件扩展名是不允许的扩展名。");
    }
    //创建文件夹
    $ym = date("Ym");
    $save_path .= $ym . "/";
    $save_url .= $ym . "/";
    if (! file_exists($save_path)) {
        mkdir($save_path);
    }
    //新文件名
    $new_file_name = date("YmdHis") . '_' . rand(10000, 99999) . '.' .
     $file_ext;
    //移动文件
    $file_path = $save_path . $new_file_name;
    if (move_uploaded_file($tmp_name, $file_path) === false) {
        alert("上传文件失败。");
    }
    @chmod($file_path, 0644);
    //缩略图处理
    $config = include_once '../../../../config/base.php';
    if (empty($config['thumb']['width']) || empty($config['thumb']['height'])) {
        echo 'please set thumbs width and height in base.php ';
        exit();
    }
    water($file_path, $config['thumb']['width'], $config['thumb']['height'], 
    $save_path);
    $file_url = $save_url . $new_file_name;
    header('Content-type: text/html; charset=UTF-8');
    $json = new Services_JSON();
    echo $json->encode(array('error' => 0, 'url' => $file_url));
    exit();
}
/**
 *
 * 缩略图加水印
 * @param unknown_type $id
 */
function water ($imagefile, $thumb_maxwidth, $thumb_maxheight, $save_path)
{
    //配置参数
    $config = array();
    //图片水印
    $config["watermark"]["type"] = 0; //是否加水印：0不加水印，1加文字水印，2加图片水印
    $config["watermark"]["text"] = ""; //水印文字内容
    $config["watermark"]["fontfile"] = getcwd() .
     "/static/public/font/msyh.ttf"; //字体文件
    $config["watermark"]["fontsize"] = 14; //字体大小
    $config["watermark"]["minwidth"] = 300; //图片最小宽度：大于此值时加水印
    $config["watermark"]["minheight"] = 200; //图片最小高度：大于此值时加水印
    $config["watermark"]["logo"] = getcwd() . "/static/news/thumbs/water.png"; //水印LOGO地址
    $config["watermark"]["transparent"] = 80; //水印LOGO不透明度
    //增加检测字体是否存在
    if (! file_exists($config['watermark']['fontfile']) &&
     $config['watermark']['type'] == 1) {
        echo '字体' . $config['watermark']['fontfile'] . '不存在，请检查';
        return null;
    }
    if (! file_exists($config['watermark']['logo']) &&
     $config['watermark']['type'] == 2) {
        echo '水印' . $config['watermark']['logo'] . '不存在，请检查';
        return null;
    }
    //生成缩略图
    //   $imagefile = getcwd() . $imagefile;
    $imagefile_s = $save_path . 'small_' . basename($imagefile);
    $imagetrans = new Imagetranscls();
    $imagetrans->originimage = $imagefile;
    $imagetrans->thumbimage = $imagefile_s;
    $imagetrans->thumb_maxwidth = $thumb_maxwidth;
    $imagetrans->thumb_maxheight = $thumb_maxheight;
    $isokid = $imagetrans->gen_thumbimage();
    //$imagetrans = null;
    if ($config["watermark"]["type"] == 2) {
        //LOGO水印
        $imagetrans->originimage = $imagefile;
        $imagetrans->watermark_minwidth = $config["watermark"]["minwidth"];
        $imagetrans->watermark_minheight = $config["watermark"]["minheight"];
        $imagetrans->watermark_logo = $config["watermark"]["logo"];
        $imagetrans->watermark_transparent = $config["watermark"]["transparent"];
        $isokid = $imagetrans->add_watermark2();
        $imagetrans = null;
    } else {
        //文字水印
        $imagetrans->originimage = $imagefile;
        $imagetrans->watermark_minwidth = $config["watermark"]["minwidth"];
        $imagetrans->watermark_minheight = $config["watermark"]["minheight"];
        $imagetrans->watermark_text = $config["watermark"]["text"];
        $imagetrans->watermark_fontfile = $config["watermark"]["fontfile"];
        $imagetrans->watermark_fontsize = $config["watermark"]["fontsize"];
        $isokid = $imagetrans->add_watermark1();
        $imagetrans = null;
    }
     // return "/static/upload/thumbs/" . basename($imagefile);
}
function alert ($msg)
{
    header('Content-type: text/html; charset=UTF-8');
    $json = new Services_JSON();
    echo $json->encode(array('error' => 1, 'message' => $msg));
    exit();
}
?>